package com.sxj.corejava.code02_运算符;

/**
 * @author 石小俊
 * @date 2025年01月03日
 */
public class Test05_逻辑运算符 {

    public static void main(String[] args) {
//        System.out.println(3 < 4 < 5);
        // 必须两边均为true,结果才是true
        System.out.println(3 < 4 & 4 < 5);
        System.out.println(3 < 4 & 4 > 5);
        // int i = 1 / 0; // 报错

        // 逻辑与:不管左边判断的值是什么,都会执行右边的判断
//        System.out.println(4 < 3 & 1 / 0 == 1);
        // 只要有任意一个值为false,则结果一定是false
        // 短路与:先执行左边的判断
        // 如果左边判断的值为true,则继续执行右边的判断
        // 如果左边判断的值为false,则不管右边的值是什么,结果均为false
        // 此时认为右边的判断没有必要执行了,因此没有执行右边的判断
        System.out.println(4 < 3 && 1 / 0 == 1);


        System.out.println(3 < 4 | 4 < 3);
//        System.out.println(3 < 4 | 1 / 0 == 1);
        // 只要左边判断的值为true,则直接得到结果true,不再执行右边的判断
        System.out.println(3 < 4 || 1 / 0 == 1);

        System.out.println(!true);
        System.out.println(!false);
        System.out.println(!(3 > 4));

    }

}
